//package com.sxg.utils.web;
//
//import okhttp3.*;
//
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//import java.util.*;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//public class DangDangWebReptileUtil {
//
//    public static Map<String, Object> reptile(String string) throws IOException {
//
//        HashMap<String, Object> result = new HashMap<>();
//
//
//        // 匹配书名
//        String name = mateValue(string, "<title>(.*?)<\\/title>", 1,true);
//        result.put("书名", name);
//
//        // 匹配简介
//        String introduction = mateValue(string, "<span class=\"head_title_name\" title=\"(.*?)\"\">(.*?)<\\/span>", 1,false);
//        result.put("简介", introduction);
//
//        // 匹配作者
//        String author = mateValue(string, "<span class=\"t1\" id=\"author\" dd_name=\"作者\" ddt-area=\"\\d+\">.*?<a .*?>(.*?)<\\/a>.*?<\\/span>", 1,false);
//        result.put("作者", author);
//
//        // 匹配出版社
//        String press = mateValue(string, "<span class=\"t1\" dd_name=\"出版社\" ddt-area=\"\\d+\">.*<a href=\".*?\" target=\"_blank\" dd_name=\"出版社\">(.*?)<\\/a>.*<\\/span>", 1,false);
//
//        result.put("出版社", press);
//
//        // 匹配出版时间
//        String pressTime = mateValue(string, "<span class=\"t1\">(.*?)&nbsp;</span>", 1,false);
//        if (!"".equals(pressTime)) {
//            pressTime = pressTime.substring(5);
//        }
//        result.put("出版时间", pressTime);
//
//        // 匹配图集
//        TreeSet<String> imageArray = mateImgArr(string, "img src=\"([^\"]+)\" title=\"商品图\\d{1}\"", 0);
//        result.put("图集", imageArray);
//
//        // 匹配Attr
//        List<String> attr = new ArrayList<>();
//        attr.add("开 本");
//        attr.add("纸 张");
//        attr.add("包 装");
//        attr.add("是否套装");
//        attr.add("国际标准书号");
//        Map<String, String> attrS = mateAttr(string, "<li>(.*?)<\\/li>", attr);
//        result.put("属性", attrS);
//
//        // 匹配 deScrip 图集
//        List<String> deScripArray = mateAttrDescrip(string, "<img style=\"max-width: 100%; display: block;\" src=\"(http://img\\d+\\.ddimg\\.cn/\\d+\\.\\w+)\"");
//        if (deScripArray.isEmpty()) {
//            deScripArray = mateAttrDescrip(string, "<img style=\"max-width: 100%; width: 800px; height: 5325.85px; display: block;\" src=\"(http://img\\d+\\.ddimg\\.cn/\\d+\\.\\w+)\"");
//        }
//        result.put("deScrip图集", deScripArray);
//
//        // 匹配内容简介
//        List<String> descContent = mateDescContent(string, "<span id=\"content-show\">(.*?)<\\/span>");
//        if (descContent.isEmpty()) {
//
//        }
//        descContent = mateDescContent(string, "<div class=\"descrip\">(.*?)<\\/div>");
//        result.put("内容简介", descContent);
//
//        return result;
//    }
//
//    private static List<String> mateDescContent(String string, String regex) {
//        Pattern pattern = Pattern.compile(regex);
//        Matcher matcher = pattern.matcher(string);
//        List<String> result = new ArrayList<>();
//        while (matcher.find()) {
//            String group = matcher.group(1);
//            result.add(group);
//        }
//        return result;
//    }
//
//    private static List<String> mateAttrDescrip(String string, String regex) {
//        Pattern pattern = Pattern.compile(regex);
//        Matcher matcher = pattern.matcher(string);
//        List<String> result = new ArrayList<>();
//        while (matcher.find()) {
//            String group = matcher.group();
//            String[] split = group.split("src=");
//            String splitLast = split[1];
//            result.add(splitLast.substring(splitLast.indexOf("\"") + 1, splitLast.lastIndexOf("\"")));
//        }
//        return result;
//    }
//
//    private static Map<String, String> mateAttr(String string, String regex, List<String> attr) {
//        Pattern pattern = Pattern.compile(regex);
//        Matcher matcher = pattern.matcher(string);
//        HashMap<String, String> result = new HashMap<>();
//        while (matcher.find()) {
//            String group = matcher.group();
//            for (String attrItem : attr) {
//                if (group.indexOf(attrItem) != -1) {
//                    int start = group.indexOf('>');
//                    int end = group.lastIndexOf('<');
//                    String substring = group.substring(start + 1, end);
//                    String[] split = substring.split("：");
//                    result.put(split[0], split[1]);
//                }
//            }
//        }
//        return result;
//    }
//
//    private static TreeSet<String> mateImgArr(String string, String regex, int index) {
//        Pattern pattern = Pattern.compile(regex);
//        Matcher matcher = pattern.matcher(string);
//        TreeSet<String> list = new TreeSet<>();
//        while (matcher.find()) {
//            String group = matcher.group(index);
//            Pattern compile = Pattern.compile("(?<=\\/\\/)[^?]*");
//            Matcher matcher1 = compile.matcher(group);
//            if (matcher1.find()) {
//                String[] s = matcher1.group().split(" ");
//                list.add(s[0].substring(0, s[0].length() - 1));
////                System.out.println(matcher1.group());
//            }
//        }
//        return list;
//    }
//
//    private static String mateValue(String string, String regex, int index,boolean isBookName) {
//        Pattern pattern = Pattern.compile(regex);
//        Matcher matcher = pattern.matcher(string);
//        String result = null;
//        while (matcher.find()) {
//            String group = matcher.group(index);
//            result = group;
//        }
//
//
//        if (result != null) {
//            if (isBookName) {
//                int start = result.lastIndexOf("《");
//                int end = result.lastIndexOf("》");
//                result = result.substring(start + 1, end);
//            }
//            return result;
//        } else {
//            return null;
//        }
//    }
//}
